package com.gzc.just.play.last.war.sceneserver.attribute;

/**
 * 属性变化监听器接口 - 用于监听属性的变化事件
 *
 * @author AI编程助手
 * @version 1.0
 * @since 2025-11-22
 */
public interface AttributeListener {
    
    /**
     * 属性值发生变化时调用
     *
     * @param type 属性类型
     * @param oldValue 旧值
     * @param newValue 新值
     */
    void onAttributeChanged(AttributeType type, double oldValue, double newValue);
    
    /**
     * 属性修改器应用时调用
     *
     * @param modifier 应用的修改器
     * @param applied 是否应用（true）或移除（false）
     */
    void onModifierApplied(AttributeModifier modifier, boolean applied);
    
    /**
     * 属性到达最大值或最小值时调用
     *
     * @param type 属性类型
     * @param isMax 是否到达最大值（true=最大，false=最小）
     */
    void onAttributeLimitReached(AttributeType type, boolean isMax);
}
